|
1
|
|
|
import 'regenerator-runtime/runtime'; |
|
2
|
|
|
import '@babel/polyfill'; |
|
3
|
|
|
import { expect } from 'chai'; |
|
4
|
|
|
import Bawler, { msg } from '../src/index'; |
|
5
|
|
|
import messages from './fixtures/lang.js'; |
|
6
|
|
|
import remoteMessages from './fixtures/remoteMessages.js'; |
|
7
|
|
|
|
|
8
|
|
|
/*global describe, it, beforeEach*/ |
|
9
|
|
|
|
|
10
|
|
|
describe('Bawler', () => { |
|
11
|
|
|
describe('Configuration', () => { |
|
12
|
|
|
it('can initialize from a single object', () => { |
|
13
|
|
|
Bawler.register('en', messages); |
|
14
|
|
|
|
|
15
|
|
|
expect(Bawler.all()).to.deep.equal({ en: messages }); |
|
16
|
|
|
}); |
|
17
|
|
|
|
|
18
|
|
|
it('can initialize from an url', async () => { |
|
19
|
|
|
await Bawler.registerUrl( |
|
20
|
|
|
'https://gist.githubusercontent.com/mendezcode/8275387/raw/db75e0adae779aaebfe25cd0e953356e34fc8d03/locales.json', |
|
21
|
|
|
'test' |
|
22
|
|
|
); |
|
23
|
|
|
|
|
24
|
|
|
expect(Bawler.all('test')).to.deep.equal(remoteMessages); |
|
25
|
|
|
}); |
|
26
|
|
|
|
|
27
|
|
|
it('can change language', async () => { |
|
28
|
|
|
Bawler.lang('zu'); |
|
29
|
|
|
expect(Bawler.currentLang).to.equal('zu'); |
|
30
|
|
|
}); |
|
31
|
|
|
}); |
|
32
|
|
|
|
|
33
|
|
|
describe('Messages', () => { |
|
34
|
|
|
beforeEach(() => { |
|
35
|
|
|
Bawler.lang(); |
|
36
|
|
|
Bawler.messages = {}; |
|
37
|
|
|
}); |
|
38
|
|
|
|
|
39
|
|
|
it('returns empty object when the language does not have any message', () => { |
|
40
|
|
|
expect(Bawler.all('foo')).to.be.empty; |
|
41
|
|
|
}); |
|
42
|
|
|
|
|
43
|
|
|
it('can get messages from a single language', () => { |
|
44
|
|
|
Bawler.register('en', messages); |
|
45
|
|
|
|
|
46
|
|
|
expect(Bawler.all('en')).to.deep.equal(messages); |
|
47
|
|
|
}); |
|
48
|
|
|
|
|
49
|
|
|
it('can output messages that are not registered', () => { |
|
50
|
|
|
expect(Bawler.msg('TEST')).to.equal('TEST'); |
|
51
|
|
|
}); |
|
52
|
|
|
|
|
53
|
|
|
it('can replace variables in messages', () => { |
|
54
|
|
|
expect(Bawler.msg('HELLO %s', ['Foo'])).to.equal('HELLO Foo'); |
|
55
|
|
|
}); |
|
56
|
|
|
|
|
57
|
|
|
it('outputs registered messages', () => { |
|
58
|
|
|
Bawler.register('en', { Foo: 'bar' }); |
|
59
|
|
|
|
|
60
|
|
|
expect(Bawler.msg('Foo')).to.equal('bar'); |
|
61
|
|
|
}); |
|
62
|
|
|
|
|
63
|
|
|
it('outputs messages in different languages', () => { |
|
64
|
|
|
Bawler.register('en', { HELLO: 'hello' }); |
|
65
|
|
|
Bawler.register('es', { HELLO: 'hola' }); |
|
66
|
|
|
|
|
67
|
|
|
Bawler.lang('en'); |
|
68
|
|
|
expect(Bawler.msg('HELLO')).to.equal('hello'); |
|
69
|
|
|
|
|
70
|
|
|
Bawler.lang('es'); |
|
71
|
|
|
expect(Bawler.msg('HELLO')).to.equal('hola'); |
|
72
|
|
|
}); |
|
73
|
|
|
|
|
74
|
|
|
it('outputs messages with shortcut function', () => { |
|
75
|
|
|
expect(msg('HELLO WORLD')).to.equal('HELLO WORLD'); |
|
76
|
|
|
}); |
|
77
|
|
|
}); |
|
78
|
|
|
}); |
|
79
|
|
|
|